<?php
declare (strict_types=1);

namespace app\middleware;

class Chain
{
    /**
     * 处理请求
     *
     * @param \think\Request $request
     * @param \Closure $next
     * @return Response
     */
    // handle 是必要的入口执行方法，第一个参数是请求对象，第二个参数是一个闭包
    public function handle($request, \Closure $next)
    {
        // 中间件的业务逻辑
        // 1.在中间件中进行验证
        dump($request->param());
        // 2.判断请求是否合法
        // 允许用户使用pc访问，不允许用户使用手机访问
        // 通过中间件进行访问拦截
        if (isMobile()) {
            return response('请使用PC端访问');
        }

        // 如果要响应用户要访问的原请求的话
        return $next($request);
    }
}
